package com.cxs.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class PharmacyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PharmacyExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andPharmacyIdIsNull() {
            addCriterion("pharmacy_id is null");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdIsNotNull() {
            addCriterion("pharmacy_id is not null");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdEqualTo(Integer value) {
            addCriterion("pharmacy_id =", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdNotEqualTo(Integer value) {
            addCriterion("pharmacy_id <>", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdGreaterThan(Integer value) {
            addCriterion("pharmacy_id >", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("pharmacy_id >=", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdLessThan(Integer value) {
            addCriterion("pharmacy_id <", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdLessThanOrEqualTo(Integer value) {
            addCriterion("pharmacy_id <=", value, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdIn(List<Integer> values) {
            addCriterion("pharmacy_id in", values, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdNotIn(List<Integer> values) {
            addCriterion("pharmacy_id not in", values, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdBetween(Integer value1, Integer value2) {
            addCriterion("pharmacy_id between", value1, value2, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyIdNotBetween(Integer value1, Integer value2) {
            addCriterion("pharmacy_id not between", value1, value2, "pharmacyId");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameIsNull() {
            addCriterion("pharmacy_name is null");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameIsNotNull() {
            addCriterion("pharmacy_name is not null");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameEqualTo(String value) {
            addCriterion("pharmacy_name =", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameNotEqualTo(String value) {
            addCriterion("pharmacy_name <>", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameGreaterThan(String value) {
            addCriterion("pharmacy_name >", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameGreaterThanOrEqualTo(String value) {
            addCriterion("pharmacy_name >=", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameLessThan(String value) {
            addCriterion("pharmacy_name <", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameLessThanOrEqualTo(String value) {
            addCriterion("pharmacy_name <=", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameLike(String value) {
            addCriterion("pharmacy_name like", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameNotLike(String value) {
            addCriterion("pharmacy_name not like", value, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameIn(List<String> values) {
            addCriterion("pharmacy_name in", values, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameNotIn(List<String> values) {
            addCriterion("pharmacy_name not in", values, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameBetween(String value1, String value2) {
            addCriterion("pharmacy_name between", value1, value2, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andPharmacyNameNotBetween(String value1, String value2) {
            addCriterion("pharmacy_name not between", value1, value2, "pharmacyName");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdIsNull() {
            addCriterion("drug_store_id is null");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdIsNotNull() {
            addCriterion("drug_store_id is not null");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdEqualTo(Integer value) {
            addCriterion("drug_store_id =", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdNotEqualTo(Integer value) {
            addCriterion("drug_store_id <>", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdGreaterThan(Integer value) {
            addCriterion("drug_store_id >", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("drug_store_id >=", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdLessThan(Integer value) {
            addCriterion("drug_store_id <", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdLessThanOrEqualTo(Integer value) {
            addCriterion("drug_store_id <=", value, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdIn(List<Integer> values) {
            addCriterion("drug_store_id in", values, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdNotIn(List<Integer> values) {
            addCriterion("drug_store_id not in", values, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdBetween(Integer value1, Integer value2) {
            addCriterion("drug_store_id between", value1, value2, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andDrugStoreIdNotBetween(Integer value1, Integer value2) {
            addCriterion("drug_store_id not between", value1, value2, "drugStoreId");
            return (Criteria) this;
        }

        public Criteria andSkullIdIsNull() {
            addCriterion("skull_id is null");
            return (Criteria) this;
        }

        public Criteria andSkullIdIsNotNull() {
            addCriterion("skull_id is not null");
            return (Criteria) this;
        }

        public Criteria andSkullIdEqualTo(Integer value) {
            addCriterion("skull_id =", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdNotEqualTo(Integer value) {
            addCriterion("skull_id <>", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdGreaterThan(Integer value) {
            addCriterion("skull_id >", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("skull_id >=", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdLessThan(Integer value) {
            addCriterion("skull_id <", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdLessThanOrEqualTo(Integer value) {
            addCriterion("skull_id <=", value, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdIn(List<Integer> values) {
            addCriterion("skull_id in", values, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdNotIn(List<Integer> values) {
            addCriterion("skull_id not in", values, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdBetween(Integer value1, Integer value2) {
            addCriterion("skull_id between", value1, value2, "skullId");
            return (Criteria) this;
        }

        public Criteria andSkullIdNotBetween(Integer value1, Integer value2) {
            addCriterion("skull_id not between", value1, value2, "skullId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdIsNull() {
            addCriterion("warehouse_id is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdIsNotNull() {
            addCriterion("warehouse_id is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdEqualTo(Integer value) {
            addCriterion("warehouse_id =", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdNotEqualTo(Integer value) {
            addCriterion("warehouse_id <>", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdGreaterThan(Integer value) {
            addCriterion("warehouse_id >", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("warehouse_id >=", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdLessThan(Integer value) {
            addCriterion("warehouse_id <", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdLessThanOrEqualTo(Integer value) {
            addCriterion("warehouse_id <=", value, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdIn(List<Integer> values) {
            addCriterion("warehouse_id in", values, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdNotIn(List<Integer> values) {
            addCriterion("warehouse_id not in", values, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdBetween(Integer value1, Integer value2) {
            addCriterion("warehouse_id between", value1, value2, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andWarehouseIdNotBetween(Integer value1, Integer value2) {
            addCriterion("warehouse_id not between", value1, value2, "warehouseId");
            return (Criteria) this;
        }

        public Criteria andUnitIsNull() {
            addCriterion("unit is null");
            return (Criteria) this;
        }

        public Criteria andUnitIsNotNull() {
            addCriterion("unit is not null");
            return (Criteria) this;
        }

        public Criteria andUnitEqualTo(Integer value) {
            addCriterion("unit =", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotEqualTo(Integer value) {
            addCriterion("unit <>", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThan(Integer value) {
            addCriterion("unit >", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThanOrEqualTo(Integer value) {
            addCriterion("unit >=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThan(Integer value) {
            addCriterion("unit <", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThanOrEqualTo(Integer value) {
            addCriterion("unit <=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitIn(List<Integer> values) {
            addCriterion("unit in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotIn(List<Integer> values) {
            addCriterion("unit not in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitBetween(Integer value1, Integer value2) {
            addCriterion("unit between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotBetween(Integer value1, Integer value2) {
            addCriterion("unit not between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andSellingPriceIsNull() {
            addCriterion("selling_price is null");
            return (Criteria) this;
        }

        public Criteria andSellingPriceIsNotNull() {
            addCriterion("selling_price is not null");
            return (Criteria) this;
        }

        public Criteria andSellingPriceEqualTo(Double value) {
            addCriterion("selling_price =", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceNotEqualTo(Double value) {
            addCriterion("selling_price <>", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceGreaterThan(Double value) {
            addCriterion("selling_price >", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("selling_price >=", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceLessThan(Double value) {
            addCriterion("selling_price <", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceLessThanOrEqualTo(Double value) {
            addCriterion("selling_price <=", value, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceIn(List<Double> values) {
            addCriterion("selling_price in", values, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceNotIn(List<Double> values) {
            addCriterion("selling_price not in", values, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceBetween(Double value1, Double value2) {
            addCriterion("selling_price between", value1, value2, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andSellingPriceNotBetween(Double value1, Double value2) {
            addCriterion("selling_price not between", value1, value2, "sellingPrice");
            return (Criteria) this;
        }

        public Criteria andAreaIsNull() {
            addCriterion("area is null");
            return (Criteria) this;
        }

        public Criteria andAreaIsNotNull() {
            addCriterion("area is not null");
            return (Criteria) this;
        }

        public Criteria andAreaEqualTo(Integer value) {
            addCriterion("area =", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotEqualTo(Integer value) {
            addCriterion("area <>", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaGreaterThan(Integer value) {
            addCriterion("area >", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaGreaterThanOrEqualTo(Integer value) {
            addCriterion("area >=", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaLessThan(Integer value) {
            addCriterion("area <", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaLessThanOrEqualTo(Integer value) {
            addCriterion("area <=", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaIn(List<Integer> values) {
            addCriterion("area in", values, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotIn(List<Integer> values) {
            addCriterion("area not in", values, "area");
            return (Criteria) this;
        }

        public Criteria andAreaBetween(Integer value1, Integer value2) {
            addCriterion("area between", value1, value2, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotBetween(Integer value1, Integer value2) {
            addCriterion("area not between", value1, value2, "area");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("`type` is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("`type` is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("`type` =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("`type` <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("`type` >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("`type` >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("`type` <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("`type` <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("`type` in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("`type` not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("`type` between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("`type` not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andProduceDateIsNull() {
            addCriterion("produce_date is null");
            return (Criteria) this;
        }

        public Criteria andProduceDateIsNotNull() {
            addCriterion("produce_date is not null");
            return (Criteria) this;
        }

        public Criteria andProduceDateEqualTo(Date value) {
            addCriterionForJDBCDate("produce_date =", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("produce_date <>", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateGreaterThan(Date value) {
            addCriterionForJDBCDate("produce_date >", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("produce_date >=", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateLessThan(Date value) {
            addCriterionForJDBCDate("produce_date <", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("produce_date <=", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateIn(List<Date> values) {
            addCriterionForJDBCDate("produce_date in", values, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("produce_date not in", values, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("produce_date between", value1, value2, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("produce_date not between", value1, value2, "produceDate");
            return (Criteria) this;
        }

        public Criteria andValidDateIsNull() {
            addCriterion("valid_date is null");
            return (Criteria) this;
        }

        public Criteria andValidDateIsNotNull() {
            addCriterion("valid_date is not null");
            return (Criteria) this;
        }

        public Criteria andValidDateEqualTo(Date value) {
            addCriterionForJDBCDate("valid_date =", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("valid_date <>", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateGreaterThan(Date value) {
            addCriterionForJDBCDate("valid_date >", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("valid_date >=", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateLessThan(Date value) {
            addCriterionForJDBCDate("valid_date <", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("valid_date <=", value, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateIn(List<Date> values) {
            addCriterionForJDBCDate("valid_date in", values, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("valid_date not in", values, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("valid_date between", value1, value2, "validDate");
            return (Criteria) this;
        }

        public Criteria andValidDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("valid_date not between", value1, value2, "validDate");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumIsNull() {
            addCriterion("drug_store_num is null");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumIsNotNull() {
            addCriterion("drug_store_num is not null");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumEqualTo(Integer value) {
            addCriterion("drug_store_num =", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumNotEqualTo(Integer value) {
            addCriterion("drug_store_num <>", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumGreaterThan(Integer value) {
            addCriterion("drug_store_num >", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("drug_store_num >=", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumLessThan(Integer value) {
            addCriterion("drug_store_num <", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumLessThanOrEqualTo(Integer value) {
            addCriterion("drug_store_num <=", value, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumIn(List<Integer> values) {
            addCriterion("drug_store_num in", values, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumNotIn(List<Integer> values) {
            addCriterion("drug_store_num not in", values, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumBetween(Integer value1, Integer value2) {
            addCriterion("drug_store_num between", value1, value2, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andDrugStoreNumNotBetween(Integer value1, Integer value2) {
            addCriterion("drug_store_num not between", value1, value2, "drugStoreNum");
            return (Criteria) this;
        }

        public Criteria andSkullBatchIsNull() {
            addCriterion("skull_batch is null");
            return (Criteria) this;
        }

        public Criteria andSkullBatchIsNotNull() {
            addCriterion("skull_batch is not null");
            return (Criteria) this;
        }

        public Criteria andSkullBatchEqualTo(String value) {
            addCriterion("skull_batch =", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchNotEqualTo(String value) {
            addCriterion("skull_batch <>", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchGreaterThan(String value) {
            addCriterion("skull_batch >", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchGreaterThanOrEqualTo(String value) {
            addCriterion("skull_batch >=", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchLessThan(String value) {
            addCriterion("skull_batch <", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchLessThanOrEqualTo(String value) {
            addCriterion("skull_batch <=", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchLike(String value) {
            addCriterion("skull_batch like", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchNotLike(String value) {
            addCriterion("skull_batch not like", value, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchIn(List<String> values) {
            addCriterion("skull_batch in", values, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchNotIn(List<String> values) {
            addCriterion("skull_batch not in", values, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchBetween(String value1, String value2) {
            addCriterion("skull_batch between", value1, value2, "skullBatch");
            return (Criteria) this;
        }

        public Criteria andSkullBatchNotBetween(String value1, String value2) {
            addCriterion("skull_batch not between", value1, value2, "skullBatch");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}